#ifndef CG_CARTEJOUEUR_H
#define CG_CARTEJOUEUR_H

#include <QObject>
#include <QGraphicsItem>
#include "cg_cartejoueur.h"
#include "client_jeu.hpp"

class Cg_JeuJoueur;

class Cg_CarteJoueur : public QObject, public QGraphicsPixmapItem
{
    Q_OBJECT
public:

    Cg_CarteJoueur();
    Cg_CarteJoueur(unsigned int numero);
    Cg_CarteJoueur(unsigned int numero, Cg_JeuJoueur *jeu);
    Cg_CarteJoueur(unsigned int numero, Cg_JeuJoueur *jeu, int place);
    unsigned int getNumero();
    QString getChemin();
    void setJouable();
    void setPlace(int place);
    void setJeu(Cg_JeuJoueur *jeu);
    int getPlace();
    Cg_JeuJoueur* getJeu();

protected:

    void mousePressEvent(QGraphicsSceneMouseEvent *event);
    void mouseMoveEvent(QGraphicsSceneMouseEvent *event);
    void mouseReleaseEvent(QGraphicsSceneMouseEvent *event);
    virtual void hoverEnterEvent(QGraphicsSceneHoverEvent *event);
    virtual void hoverLeaveEvent(QGraphicsSceneHoverEvent *event);

private:

    int m_place;
    Cg_JeuJoueur *m_jeu;
    unsigned int m_numero;
    QString m_chemin;
    bool m_jouable, m_chienEnCours;

public slots :

    void doit_jouer();
    void doit_ecarter(std::vector<Carte> possibles, std::vector<Carte> atouts);

signals :

    void carteAuChien(Carte carte);
    void formuler_requete(Carte requete);

};

#endif // CG_CARTEJOUEUR_H
